package bean

// 节点树的基础属性
type NoteTreeNode struct {
	// 笔记树节点所属笔记本ID
	NotebookId string `json:"notebookid"`
	// 笔记树节点唯一标识码
	Id string `json:"id"`
	// 笔记树节点名称
	Name string `json:"label"`
	// 笔记树节点层级
	Level int8 `json:"level"`
	// 父节点
	ParentId string `json:"parent"`
	// 是否为叶子节点
	IsDir bool `json:"isdir"`
	// 节点所处路径
	Path string `json:"path"`
	// 节点是否可以编辑
	Editable bool `json:"editable"`
	// 文件后缀名称
	Suffix string `json:"suffix"`
	// 笔记本ID
	Childrens []*NoteTreeNode `json:"children"`
}

// 节点内容响应结构体
type NoteNodeRespParam struct {
	// 节点后缀
	Suffix string `json:"suffix"`
	// 节点名称
	Name string `json:"name"`
	// Editor 主题
	Theme string `json:"theme"`
	// Editor Mode
	Mode string `json:"mode"`
	// Mime
	Mime string `json:"mime"`
	// 文件内容
	Content string `json:"content"`
	// 文件路径
	Path string `json:"path"`
	// 依赖项
	Dependencies []string `json:"dependencies"`
	// 需要的额外组件
	Addons []string `json:"addons"`
	// 是否显示预览框
	IsShowPreview bool `json:"isShowPreview"`
	// 编辑框宽度
	EditboxWidth int8 `json:"editboxWidth"`
	// 编辑框宽度
	PreviewWidth int8 `json:"previewWidth"`
}

type UpdateNodeContent struct {
	Content string `json:"content"`
	Path    string `json:"path"`
}

func GetNustDBBucketOfNoteTree() string {
	return "nustdb-notetree-bucket"
}
